var playerObj = new player();

//Player Function
function player(){
    // Globale Variablen
    var tActive, cTime,tSlider,sInOut,pInOut;
    var formatTime       = "";
    formatTimeInOut  = "";
    // ENDE Globale Variablen

    // set Timeout Function für die Zeitausgaben
    this.timeMsg = function() {
        tActive = setTimeout("playerObj.activeTime()", 100);
        cTime   = setTimeout("playerObj.currentTime()", 100);
        tSlider = setTimeout("playerObj.timeSlider()", 100);
        //sInOut  = setTimeout("playerObj.setInOut()", 100);
    };
    // ENDE set Timeout Function

    // clear Timeout Function um eine endlosschleife zu verhindern
    this.stop = function() {
        clearTimeout(tActive);
        clearTimeout(cTime);
        //clearTimeout(pInOut);
        //clearTimeout(sInOut);
        tActive = null;
        cTime   = null;
    };
    // ENDE clear Timeout Function

    //  ermitteln der Aktuellen Position des Sliders
    this.activeTime = function(){
        this.getTime(jwplayer().getPosition());
        this.timeMsg();
        $('#activeTime strong').html(formatTime + ' ' + '/');
    };
    //  ENDE ermitteln der Aktuellen Position des Sliders

    //  ermitteln der Gesamtzeit des jeweiligen Films
    this.currentTime = function(){
        this.getTime(jwplayer().getDuration());
        $('#currentTime').html(formatTime);
    };
    //  ENDE ermitteln der Gesamtzeit des jeweiligen Films

    //  Ausgabe des richtigen Zeitformats
    this.getTime = function setInOutTime(time, inOrOut){
        var stunde       = "0";
        var minute       = "0";
        var sekunde      = "0";
        var sekundeInOut = "0.0";

        // Berechung der Zeitanzeige da nur Sekunden übergeben werden

        var floatStunde = time / 3600;

        if(floatStunde >= 1){
            var ergStunde = floatStunde.toString().split('.');

            stunde = ergStunde[0];
        }

        var floatMinute = time / 60;

        if(floatMinute >= 1){
            minute = (time - (stunde * 3600))/60;
            var ergMinute = minute.toString().split('.');

            minute = ergMinute[0];
        }

        var floatSecunde = time%60;

        if(floatSecunde >= 1){
            sekunde      = (time%60).toFixed();
            sekundeInOut = (time%60).toFixed(1);
        }

        if(stunde < 10){
            stunde = '0' + stunde;
        }
        if(minute < 10){
            minute = '0' + minute;
        }
        if(sekunde < 10){
            sekunde = '0' + sekunde;
        }
        if(sekundeInOut < 10){
            sekundeInOut = '0' + sekundeInOut;
        }

        formatTime      = (stunde + ":" + minute + ":" + sekunde);
        formatTimeInOut = (stunde + ":" + minute + ":" + sekundeInOut);

        if(time <= 0){
            formatTimeInOut = "00:00:00.0";
        }

        /*
        if(inOrOut == 'in'){
        $('#inPointTime span').html(formatTimeInOut);
        $('#inTime').html(time);//zwischenspeichern zur verarbeitung wenn "out" geclickt wird
        }else{
        //Duration berechnen zwischen In und Out
        $cDuration = new Number(time - $('#inTime').html());
        $cDuration = formatTimeInOut;
        $('#totalPointsTime').html($cDuration);
        $('#tmpDuration').html($cDuration);
        //Out Time anzeigen
        $('#outPointTime span').html(formatTimeInOut);
        }
        */
    };
    // ENDE Ausgabe des richtigen Zeitformats

    // Function für das mitlaufen des Zeit Sliders
    this.timeSlider = function(){
        var totalRunningTime        = Math.ceil(jwplayer().getDuration()); // Gesamte Laufzeit des Clips in Sekunden
        var currentPosition         = Math.ceil(jwplayer().getPosition()); // Aktuelle Position des Clips in Sekunden
        var currentSliderPosition   = Math.ceil(635 / totalRunningTime * currentPosition); // Aktuelle Position des Sliders in Pixeln
        var currentSliderPercentage = Math.ceil(100 / 635 * currentSliderPosition); // Aktuelle Position des Sliders in Prozent

        $( "#timeSlider" ).slider( "option", "value", currentSliderPosition );
    };
    //  ENDE Function für das mitlaufen des Zeit Sliders

    //  Function zum setzten des IN und Out Points und ausgabe der zu spielen Strecke zwischen In und Out Point
    this.setInOut = function(){
        var currentPosition         = Math.ceil(jwplayer().getPosition()); // Aktuelle Position des Clips in Sekunden
        var totalRunningTime        = Math.ceil(jwplayer().getDuration()); // Gesamte Laufzeit des Clips in Sekunden
        var inPointPercentage       = $('#setInOutPoint .ui-widget-header').next().css('left');// Holen des Prozent Wert des In Points
        var outPointPercentage      = $('#setInOutPoint .ui-widget-header').next().next().css('left');// Holen des Prozent Wert des Out Points
        var timeSliderPercentage    = $('#timeSlider .ui-widget-header').next().css('left');// Holen des Prozent Wert des Out Points
        var currentSliderPoint      = 0;
        var currentSliderInPoint    = 0;
        var currentSliderOutPoint   = 0;
        var currentSliderPosition   = Math.ceil(635 / totalRunningTime * currentPosition);
        var currentSliderPercentage = Math.ceil(100 / 635 * currentSliderPosition); // Aktuelle Position des Sliders in Prozent

        // currentSliderInPoint    = Math.round(currentSliderInPoint*100)/100; // gerundet auf zwei Stellen hinterm Komma
        currentSliderInPoint      = (totalRunningTime / 100 * parseInt(inPointPercentage.replace(/%/, ""))); // Aktuelle Zeit des In Point
        this.getTime(currentSliderInPoint);
        $('#inPointTime span').text(formatTimeInOut);//eintragen der Zeit in das span des Out points

        //currentSliderOutPoint   = Math.round(currentSliderOutPoint*100)/100; //gerundet auf zwei Stellen hinterm Komma
        currentSliderOutPoint     = (totalRunningTime / 100 * parseInt(outPointPercentage.replace(/%/, ""))); // Aktuelle Zeit des In Points
        this.getTime(currentSliderOutPoint);
        $('#outPointTime span').text(formatTimeInOut); //eintragen der Zeit in das span des In points

        // Ausnahme fuer IE Und FF wegen px Wert
        if (inPointPercentage.match(/px$/)) {
            inPointPercentage = parseInt(inPointPercentage.replace(/px/, ""));

            // Berechnung prozentualer Wert
            inPointPercentage     = Math.round(100 / 635 * inPointPercentage);
            currentSliderInPoint   = (totalRunningTime / 100 * inPointPercentage); // Aktuelle Zeit des In Points
            currentSliderInPoint   = Math.round(currentSliderInPoint*100)/100; // gerundet auf zwei Stellen hinterm Komma

            this.getTime(currentSliderInPoint);
            $('#time #inPointTime span').text(formatTimeInOut);// eintragen der Zeit in das span des Out points
        }

        if (outPointPercentage.match(/px$/)) {
            outPointPercentage = parseInt(outPointPercentage.replace(/px/, ""));

            // Berechnung prozentualer Wert
            outPointPercentage      = Math.round(100 / 635 * outPointPercentage);
            currentSliderOutPoint   = (totalRunningTime / 100 * outPointPercentage); // Aktuelle Zeit des In Points
            currentSliderOutPoint   = Math.round(currentSliderOutPoint*100)/100; //gerundet auf zwei Stellen hinterm Komma

            this.getTime(currentSliderOutPoint);
            $('#time #outPointTime span').text(formatTimeInOut); //eintragen der Zeit in das span des In points
        }
        // ENDE Ausnahme fuer IE Und FF

        var fullTimeInAndOutPoints = currentSliderOutPoint - currentSliderInPoint;
        this.getTime(fullTimeInAndOutPoints);
        $('#time .inOutPointLength .totalPointsTime').text(formatTimeInOut);//Gesamtzeite zwischen In und Out Point
    };

    // ENDE Function zum setzten des IN und Out Points und ausgabe der zu spielen Strecke zwischen In und Out Point

    // Function zum abspielen der Strecke zwischen In und Out Point
    this.playInToOutPoint = function(){
        var totalRunningTime      = Math.ceil(jwplayer().getDuration()); // Gesamte Laufzeit des Clips in Sekunden
        var inPointPercentage     = $('#setInOutPoint .ui-widget-header').next().css('left');//Holen des Prozent Wert des In Points
        var currentSliderInPoint  = (totalRunningTime / 100 * parseInt(inPointPercentage.replace(/%/, ""))); // Aktuelle Zeit des In Points
        //currentSliderInPoint      = Math.round(currentSliderInPoint*100)/100; //gerundet auf zwei Stellen hinterm Komma
        console.log(inPointPercentage);
        console.log(currentSliderInPoint);
        // Ausnahme fuer IE Und FF wegen px Wert
        if (inPointPercentage.match(/px$/)) {
            inPointPercentage = parseInt(inPointPercentage.replace(/px/, ""));

            // Berechnung prozentualer Wert
            inPointPercentage     = Math.round(100 / 635 * inPointPercentage);
            currentSliderInPoint   = (totalRunningTime / 100 * inPointPercentage); // Aktuelle Zeit des In Points
            currentSliderInPoint   = Math.round(currentSliderInPoint*100)/100; //gerundet auf zwei Stellen hinterm Komma
        }
        // ENDE Ausnahme fuer IE Und FF wegen px Wert
        this.playToOutPoint();
        jwplayer().seek(currentSliderInPoint);

    };
    // ENDE Function zum abspielen der Strecke zwischen In und Out Point

    // Function zum Stoppen beim Out Point
    this.playToOutPoint = function(){
        var totalRunningTime      = Math.ceil(jwplayer().getDuration());// Gesamtzeit in sec
        var currentPosition       = Math.ceil(jwplayer().getPosition()); // Aktuelle Position des Clips in Sekunden
        var outPointPercentage    = $('#setInOutPoint .ui-widget-header').next().next().css('left');//Holen des Prozent Wert des Out Points
        var currentSliderOutPoint = (totalRunningTime / 100 * parseInt(outPointPercentage.replace(/%/, ""))); // Aktuelle Zeit des Out Points

        pInOut = setTimeout('playerObj.playToOutPoint()',100);

        // Ausnahme fuer IE Und FF wegen px Wert
        if (outPointPercentage.match(/px$/)) {
            outPointPercentage    = parseInt(outPointPercentage.replace(/px/, ""));

            // Berechnung prozentualer Wert
            outPointPercentage    = Math.round(100 / 635 * outPointPercentage);
            currentSliderOutPoint = (totalRunningTime / 100 * outPointPercentage); // Aktuelle Zeit des In Points
        }
        // ENDE Ausnahme fuer IE Und FF wegen px Wert

        currentSliderOutPoint = Math.round(currentSliderOutPoint*100)/100;//gerundet auf eine Stelle hinterm Komma
        //console.log(pInOut);
        //console.log(currentPosition);
        if(currentPosition >= currentSliderOutPoint ){
            jwplayer().pause(clearTimeout(pInOut));

            // Play Button Austausch
            //$('#controllbar .play').css('background', 'url(img/player/play_btn.gif)');
            // ENDE Play Button Austausch
        }

    };
    // ENDE Function zum Stoppen beim Out Point
} // ENDE Player Function
